/*	Copyright 2007 - Xavier Baro (xbaro@cvc.uab.cat)

This file is part of eapmlib.

Eapmlib is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or any 
later version.

Eapmlib is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
#include "EvolutiveLib.h"
#include "FuncEvaluator.h"
#include "EAPMLearner.h"
#include <stdio.h>
#include <iostream>

using namespace Evolutive;

//! Sample function to use the PDMNBE to minimize/maximize standard functions
void PDMNBEOptimizeFunction(PREDEF_FUNCTION Function,int NumVars,int NumIndividuals,int MaxIters, int NumRuns,double WorsePercentage);

//! Sample function to use EAPM to minimize/maximize a numeric function
void OptimizeFunction(PREDEF_FUNCTION Function,int NumVars,int NumIndividuals,int MaxIters, int NumRuns,double WorsePercentage);

//! Function that configures the learner and evaluation objects. Parameters return the used parameters.
void GetProblemObjects(PREDEF_FUNCTION Function,int NumVars,CEAPMLearner *oL,CFuncEvaluator *FuncObject,double Parameters[2]);

//! Function to test the double to binary and binary to duoble conversions
void CheckConversions(void);